from paddleocr import PaddleOCR, draw_ocr
from PIL import Image
import matplotlib.pyplot as plt
import os

# Step 1: 初始化 OCR 模型（中英文 + 方向分类器）
ocr = PaddleOCR(use_angle_cls=True, lang='ch')  # 'ch' 中文，'en' 英文，'ch_en' 中英文混合

# Step 2: 设置图片路径（换成你自己的图片路径）
image_path = r"/data/img_4.png"
# 确保当前目录下有 test.jpg 或换成你自己的文件路径

if not os.path.exists(image_path):
    print(f"[错误] 图片文件不存在：{image_path}")
else:
    # Step 3: 调用 OCR 执行识别
    result = ocr.ocr(image_path, cls=True)

    # Step 4: 打印识别结果
    print("识别结果：")
    for line in result[0]:
        box = line[0]
        text = line[1][0]
        score = line[1][1]
        print(f"  文本：{text}，置信度：{score:.2f}")

    # Step 5: 可视化标注识别结果
    image = Image.open(image_path).convert('RGB')
    boxes = [line[0] for line in result[0]]
    txts = [line[1][0] for line in result[0]]
    scores = [line[1][1] for line in result[0]]

    # 字体路径（Windows系统推荐用 simfang.ttf）
    font_path = 'simfang.ttf'  # 如果无法加载中文字体，请指定具体路径

    im_show = draw_ocr(image, boxes, txts, scores, font_path=font_path)
    im_show = Image.fromarray(im_show)

    # 显示结果图
    plt.imshow(im_show)
    plt.axis('off')
    plt.title('OCR识别结果')
    plt.show()
